![]() 複数のアダプタにわたり複数の仮想ipアドレスを同時にサポートしているホストにおけるフェイルオーバのための方法、システム、およびプログラム
专利摘要:
ホストの複数アダプタのうちの任意のアダプタが、ホストに割り当てられた複数のVIPAのうちの任意のVIPAを同時にサポートできるようにする、ホストを提供する。複数のアダプタの中の少なくとも1つの特定アダプタの障害に応答して、ホストは、各VIPAに関する別々のハードウェア・アドレス更新を、ネットワークを介してブロードキャストするために、残りの機能アダプタをトリガし、結果として、複数のVIPAをサポートするホストにおけるフェイルオーバの場合、ホストが、ネットワークを介してアクセス可能な少なくとも1つの他のホストに、複数のVIPAに関する任意の新しいパケットを、残りのアダプタのうちの1つの別々のハードウェア・アドレスのうちの1つへとアドレス指定するように指示することになる。 公开号:JP2011507426A 申请号:JP2010538533 申请日:2008-11-24 公开日:2011-03-03 发明作者:ヴェンカツブラ、ヴァンカト;ジェイン、ヴィニト;マーレイ、エリザベス、ジーン;レパクシャイア、マレシュ 申请人:インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation; IPC主号:H04L12-56
专利说明:
[0001] 本発明は、一般に、ネットワーク内の改良型ホスト・システムに関し、より具体的に言えば、複数の仮想インターネット・プロトコル(IP)アドレス(VIPA)を同時にサポート可能な複数のアダプタを備えるホストにおける改良型フェイルオーバに関する。] 背景技術 [0002] インターネットなどの伝送制御プロトコル/インターネット・プロトコル(TCP/IP)ネットワークで使用される、アドレス解決プロトコル(ARP)は、IPアドレスとメディア・アクセス制御(MAC)アドレスとの間のマッピングを要求側ホストに提供する。一例では、所与のIPアドレスに関するMACアドレスを習得する必要のある要求側ホストは、IPアドレスを含むARP要求を、ネットワーク内のすべてのルータおよびホストにブロードキャストする。ホスト側のアダプタはこの要求を受信する。IPアドレスが割り当てられたアダプタは、IPアドレスに対応するMACアドレスを含むARP応答によって、ARP要求に応答する。したがって、要求側ホストは、ARP要求に対するARP応答を通じて、IPアドレスに対応するMACアドレスを習得する。] [0003] 「実」IPアドレスとは、物理アダプタに関連付けられたものである。アダプタは、しばしば、他のホストとの何千ものネットワーク・セッションをサポートする。アダプタに障害が発生した場合、アダプタに関連付けられたIPアドレスを使用するすべてのアクティブ・セッションも障害を起こすことになる。仮想IPアドレス(VIPA)は、この問題を緩和するものと考えられた。VIPAとは、物理アダプタではなくホストに関連付けられたIPアドレスである。メッセージは実IPアドレスまたはVIPAへとアドレス指定することができる。ホストが複数のアダプタを含む場合、VIPAへとアドレス指定されたIPトラフィックは、いずれかのアダプタを介してルーティング可能である。この場合、ホストは、VIPAトラフィックを異なる物理アダプタを介してルーティングすることにより、アダプタ障害後に耐障害性を提供することができる。] 発明が解決しようとする課題 [0004] しかしながら、複数のVIPAが単一のホストに割り当てられている場合、VIPAベースのフェイルオーバ・システムは依然として効率性が制限される。具体的に言えば、単一のVIPAを複数のアダプタにわたってサポート可能であるが、複数のVIPAがホストによって割り当てられている場合、各VIPAはそのVIPAにのみ割り当てられた別のアダプタ・セットを必要とする。しかしながら、複数のアダプタを別々のVIPAそれぞれに別々に割り当てるためには、アダプタ障害時にフェイルオーバを容易にするために、各VIPAに別々のバックアップ・アダプタを割り当てることが必要な可能性がある。各VIPAに別々のバックアップ・アダプタを割り当てることは、非効率的なリソースの割り振りである。] 課題を解決するための手段 [0005] したがって、上記に鑑み、効率的なフェイルオーバを依然として可能にしながら、ホストの任意のハードウェア・アダプタが、ホストに関連付けられた複数のVIPAのいずれかについて着信データを同時に受け入れることを可能にするための、方法、システム、プロセス、およびプログラム製品が提供される。] [0006] 一実施形態では、ホストは、ホストの複数のアダプタのうちの任意のアダプタが、ホストに割り当てられた複数のVIPAのうちの任意のVIPAを同時にサポートできるようにする。複数のアダプタの中の少なくとも1つの特定アダプタの障害に応答して、ホストは、各VIPAに関する別々のハードウェア・アドレス更新をネットワークを介してブロードキャストするために残りの機能アダプタをトリガすることから、結果として、複数のVIPAをサポートするホストにおけるフェイルオーバの場合、ホストは、ネットワークを介してアクセス可能な少なくとも1つの他のホストに、複数のVIPAに関する任意の新しいパケットを、残りのアダプタのうちの1つの別々のハードウェア・アドレスのうちの1つへとアドレス指定するように指示する。] [0007] ホストは、ホストで受信したARP要求内に指定されたIPアドレスと、複数のVIPAのリストとを比較して、ホストがVIPAのリスト内のIPアドレスをサポートしているかどうかを判別するために、ホスト上にネットワーク・スタックを構成することによって、ホストの複数のアダプタのうちの任意のアダプタが、ホストに割り当てられた複数のVIPAのうちの任意のVIPAを同時にサポートできるようにする。ホストが、複数のVIPAのうちの特定VIPAに一致する特定のIPアドレスに関して、少なくとも1つの他のホストの中から要求側ホストからのARP要求を受信することに応答して、ホストは、特定VIPAに関する各アダプタの各ハードウェア・アドレスと共に、要求側ホストにARP応答を送信するために各アダプタをトリガし、要求側ホストは、複数のアダプタからの複数のARP応答のうちの1つを格納する。] [0008] 以下で,本発明の諸実施形態について、添付の図面を参照しながら単なる例として説明する。] 図面の簡単な説明 [0009] 複数のVIPAの同時サポートが実行可能な複数のアダプタが割り当てられたホストの一例を示すブロック図である。 複数のVIPAの同時サポートが実行可能な複数のアダプタに関するフェイルオーバをサポートするホストが実装可能な、ネットワーク環境の一例を示すブロック図である。 本発明が内部に実装可能なコンピュータ・システムの一実施形態を示すブロック図である。 複数のVIPAの同時サポートが実行可能な複数のアダプタに関する効率的なフェイルオーバをサポートするための、ネットワーク・スタックを示すブロック図である。 複数のホストとゲートウェイ・ホストとの間で送信されるARPパケットの一例を示し、ゲートウェイ・ホストが複数のVIPAを同時に容易にできる複数のアダプタをサポートする、流れ図である。 内部に本発明が実装可能な、ゲートウェイを含むネットワーク環境の一例を示すブロック図である。 複数のVIPAの同時サポートが実行可能な複数のアダプタをサポートし、停止ゲートウェイ検出(Dead Gateway Detection)をサポートする、ホスト・システムの例を示す流れ図である。 要求側ホストからの要求に応答する受信側ホストのネットワーク・スタックに関するプロセスおよびプログラムを示し、受信側ホストは複数のアダプタが複数のVIPAを同時にサポートできるようにする、高水準論理流れ図である。 要求側ホストが、複数のアダプタが複数のVIPAを同時にサポートできるようにした場合、フェイルオーバを容易にするために障害アダプタに応答する受信側ホストのネットワーク・スタックに関するプロセスおよびプログラムを示す、高水準論理流れ図である。] 実施例 [0010] 次に図面、特に図1を参照すると、ブロック図は、複数のVIPAの同時サポートが実行可能な複数のアダプタが割り当てられたホストの一例を示す。この例では、ホスト100は複数のアダプタ110、112、および114を含む。加えて、この例では、複数のVIPA102および104が単一のホスト100に関連付けられる。この例では、ホスト100は、ネットワークに接続され、ネットワーク内でデータを受信または送信する、1つまたは複数の物理または論理のデータ処理システム、ルータ、または他のシステムを表すことができる。この例では、アダプタ110、112、および114は物理アダプタとして記述されるが、他の例では、アダプタ110、112、および114のうちの1つまたは複数は、1つまたは複数の物理アダプタの仮想表現を表すことができる。] 図1 [0011] 一例では、ホスト100内で、アダプタ110、112、および114は、それぞれがVIPA102およびVIPA104の両方をサポートするように構成される。アダプタ110、112、および114がVIPA102およびVIPA104の両方を同時にサポートするように構成することによって、VIPA102およびVIPA104の両方がアダプタ110、112、および114のそれぞれで着信データを受け入れることが可能であり、VIPA102およびVIPA104の両方がアダプタ110、112、および114のそれぞれを通じてデータをルーティングすることが可能である。示されていないが、他の例では、アダプタ110、112、および114のうちの1つを初期に着信データを受信するように設定することが可能であり、残りのアダプタをVIPA102およびVIPA104の両方について発信データをロード・バランシングするために設定することが可能である。] [0012] この例では、VIPA102およびVIPA104が仮想または論理のIPアドレスを表し、アダプタ110、112、および114に、それぞれMACアドレスなどのハードウェア・アドレスが割り当てられる。加えて、VIPA102およびVIPA104は実IPアドレスを表すことが可能であり、アダプタ110、112、および114には、仮想アドレス、複数の物理アドレス、または他のタイプのアドレス指定を割り当てることが可能であることが理解されよう。] [0013] 一例では、VIPA102およびVIPA104の両方が、ホスト100の同じサービスにアクセスするように割り当てられ、サービスは、アプリケーション、データ、あるいは、ホスト100またはホスト100にアクセス可能な他のシステムの機能を含むことが可能であるが、これらには限定されない。他の例では、VIPA102およびVIPA104のそれぞれが、ホスト100の別々のサービスに割り当てられ、ホスト100は、アダプタ110、112、および114のいずれかを通じてホスト100によって受信された異なるサービスについて異なるVIPAに関するパケットの分布を管理するために、1つまたは複数の追加のプロセッサまたはハードウェアを実装する。] [0014] この例では、VIPA102および104はホスト100に関連付けられているが、他の例では、任意数のVIPAを単一のホストまたはクラスタあるいは他のホスト・グループに関連付けることが可能であること、および、1つまたは複数のVIPAを1つのホストから他のホストへ転送することが可能であることに留意されたい。加えて、この例では、アダプタ110、112、および114はVIPA102と104との間で共有されているが、他の諸実施形態では、アダプタのうちの1つまたは複数を主として特定のVIPAに割り当てることが可能であることに留意されたい。] [0015] 次に図2を参照すると、ブロック図は、複数のVIPAの同時サポートが実行可能な複数のアダプタに関するフェイルオーバをサポートするホストが実装可能な、ネットワーク環境の一例を示す。ネットワーク環境200は、それぞれがネットワーク環境200内で通信するための1つまたは複数のアダプタを備えた、1つまたは複数のホストをサポート可能な、1つのタイプのネットワーク環境の例示であるが、追加、代替、または他のタイプのホストを他のネットワーク環境内に実装可能であることに留意されたい。加えて、ネットワーク環境200内でのシステムの分散は、システムの分散の例示であるが、ネットワーク環境内での他のシステムの分散が実装可能であることに留意されたい。] 図2 [0016] 図に示されるように、ネットワーク環境200内の複数のシステムは、通信的に接続された様々なデバイスとコンピュータ・システムとの間に通信リンクを提供するために使用されるメディアである、ネットワーク202を介して、通信的に接続可能である。ネットワーク202は、ワイヤまたは光ファイバ・ケーブルなどの永続接続と、たとえば電話接続および無線伝送接続を介して行われる一時接続とを、含むことができる。ネットワーク202は、パケット交換ベースのネットワークおよび電話ベースのネットワーク、ローカル・エリアおよびワイヤ・エリアのネットワーク、公衆および専用のネットワークのうちの、1つまたは複数を表すことができる。] [0017] ネットワーク202は、物理レイヤ、リンク・レイヤ、ネットワーク・レイヤ、移送レイヤ、プレゼンテーション・レイヤ、およびアプリケーション・レイヤのうちの1つまたは複数を含むことが可能な、1つまたは複数のタイプのネットワーク・プロトコル・スタックのうちの1つまたは複数のレイヤを実装することができる。たとえば、ネットワーク202は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)プロトコル・スタックまたはオープン・システム相互接続(OSI)プロトコル・スタックのうちの、1つまたは複数を実装することができる。加えて、たとえばネットワーク202は、互いに通信するためにTCP/IPプロトコル・スート(suite)を使用する、ネットワークおよびゲートウェイの世界規模接続を表すことができる。他の例では、ネットワーク202は、1つまたは複数の異なるタイプのプロトコル・スタックおよび他のタイプのプロトコル・スタックを実装することができる。] [0018] ネットワーク環境200は、複数タイプのネットワーク・アーキテクチャを実装することができる。一例では、ネットワーク環境200は、クライアント/サーバ・アーキテクチャを使用して実装可能であり、ここではデータまたはプロセスを要求するコンピューティング・システムがクライアントと呼ばれ、データ要求およびプロセスを処理するコンピューティング・システムがサーバと呼ばれる。他の例では、ネットワーク環境200はピア・ツー・ピア・ネットワーク・アーキテクチャ内に実装可能である。更に他の例では、ネットワーク環境200はグリッド・アーキテクチャ内に実装可能である。他のタイプのネットワーク・アーキテクチャおよびネットワーク・アーキテクチャの組み合わせがネットワーク環境200内に実装可能であることを理解されよう。] [0019] この実施形態では、図に示されるように、クライアント・システム210、クライアント・システム220、およびサーバ・システム230のうちの1つまたは複数が、ネットワーク環境200内でネットワーク202を介して通信的に接続される。一般に、クライアント・システム210およびクライアント・システム220は、ネットワーク202を介して1つまたは複数のサービスをサーバ・システム230に要求し、サーバ・システム230によって送達されるデータは、ネットワーク202を介してクライアント・システム210およびクライアント・システム220へと出力される。クライアント・システム210およびクライアント・システム220はそれぞれ、サービスに関する要求を受信するため、およびデータまたは他の出力を他のシステムへ送達するための、サーバとして実装可能であることを理解されよう。加えて、サーバ・システム230は、ネットワーク202を介して、サービスに関する要求を送信するためおよび他のシステムからの出力を受信するための、クライアント・システムとして実装可能であることを理解されよう。ネットワーク環境200は、1つまたは複数のクライアント・システム、1つまたは複数のサーバ・システム、ならびに、ネットワーク環境200内のシステムを通信的に接続するネットワーク202の1つまたは複数のインスタンスを、含むことが可能であることを理解されよう。] [0020] 図に示されるように、クライアント・システム210、クライアント・システム220、およびサーバ・システム230は、それぞれ、図1のホスト100などのホストを表すことができる。加えて、グループ化、クラスタ、または他のネットワーク・マッピングは、クライアント・システム210、クライアント・システム220、およびサーバ・システム230のすべてまたは一部の組み合わせを含むものとして、ホスト100を指定することができる。] 図1 [0021] 具体的に言えば、この実施形態に示されるように、サーバ・システム230は、サーバ・システム230の1つまたは複数のソフトウェア・レイヤおよびハードウェア・レイヤ内に実装された、複数VIPAフェイルオーバ・コントローラ232を介して、複数VIPA236を同時にサポートすることが可能な複数アダプタ234を備えたホストを表す。複数VIPAフェイルオーバ・コントローラ232は、複数VIPA236の同時サポートが可能な複数アダプタ234のうちの1つが障害を起こすかまたは除去された場合の、フェイルオーバもサポートする。] [0022] 第1に、複数VIPAフェイルオーバ・コントローラ232は、複数アダプタ234のそれぞれが、複数VIPA236のうちのいずれか向けのデータを受け入れることを実行可能にする。一例では、いずれかのアダプタがそれぞれのVIPA向けのデータを受け入れ可能にするために、複数VIPAフェイルオーバ・コントローラ232は、複数アダプタ234をトリガし、着信パケット内のIPと複数VIPA236のうちの1つとの間に合致が存在するかどうかを判別するために、各着信パケットに関する複数VIPA236のリストをチェックする。] [0023] 第2に、複数VIPAフェイルオーバ・コントローラ232は、複数アダプタ234のうちの1つが障害を起こし、結果としてサーバ・システム230への現在の接続が中断された場合、フェイルオーバを容易にする。一例では、複数アダプタ234のいずれかがVIPA向けのデータを受け入れることが可能であるため、クライアント・システム210またはクライアント・システム220は、複数アダプタ234のそれぞれに関する物理アドレスを受信し、複数VIPA236のうちの1つに関するサーバ・システム230へとパケットをアドレス指定する際に使用するために物理アドレスのうちの1つを選択する。複数アダプタ234のうちの1つが障害を起こした場合、複数VIPAフェイルオーバ・コントローラ232は、クライアント・システム210およびクライアント・システム220などのすべての他のホストに対して、複数VIPA236のそれぞれに関する物理アドレスが変更された旨の更新と共に、更新をブロードキャストする。クライアント・システム210とクライアント・システム220との間のサーバ・システム230との接続は、VIPAに結合されるため、クライアント・システム210またはクライアント・システム200は、サーバ・システム230へのいずれの新しいパケットも、現在の接続を中断することなく、更新された機能アダプタの物理アドレスへと送信する。] [0024] サーバ・システム230を参照しながら説明した複数VIPAフェイルオーバ・コントローラ232の分散に加えて、複数VIPAフェイルオーバ・コントローラ232は、クライアント・システム210、クライアント・システム220、またはネットワーク202内などの、ネットワーク環境内の追加または代替システム間で分散可能であることに留意されたい。加えて、複数VIPAフェイルオーバ・コントローラ232は、単一のクライアント・システム210または220、サーバ・システム230、またはネットワーク202内で、あるいは、複数のクライアント・システム、サーバ・システム、またはネットワークにまたがって分散された、複数の論理ネットワーク区画間で分散可能である。さらに、複数VIPAフェイルオーバ・コントローラ232の複数の物理、論理、または仮想のインスタンスは、クライアント・システム、サーバ・システム、またはネットワークで開始可能である。] [0025] 具体的に言えば、複数VIPAフェイルオーバ・コントローラのプロセス・ソフトウェアは、サーバ・システム230の複数VIPAフェイルオーバ・コントローラ232、および、CD、DVDなどのストレージ・メディアのローディングを介したプロキシ・コンピュータ・システム(図示せず)などの、システム内への直接の手動ローディングによって、展開可能であることがわかるが、プロセス・ソフトウェアは、プロセス・ソフトウェアをサーバ・システムまたはサーバ・システム・グループへ送信することによって、コンピュータ・システム内に自動的または半自動的に展開することも可能である。その後、プロセス・ソフトウェアは、プロセス・ソフトウェアを実行することになるクライアント・コンピュータまたはサーバ・システム内にダウンロードされる。別の方法として、プロセス・ソフトウェアは、電子メールまたは他の電子通信を介して、クライアント・システムまたはサーバ・システムへ直接送信される。その後、プロセス・ソフトウェアは、プロセス・ソフトウェアをディレクトリ内に分離するプログラムを実行する、電子メールまたは他の電子通信上のボタンによって、ディレクトリへと分離されるか、またはディレクトリ内にロードされる。他の代替方法は、クライアント・システムまたはサーバ・システムのハード・ドライブ上にあるディレクトリに、プロセス・ソフトウェアを直接送信することである。いずれかのプロキシ・サーバが存在する場合、プロセスは、プロキシ・サーバ・コードを選択し、プロキシ・サーバのコードを配置するコンピュータを決定し、プロキシ・サーバ・コードを伝送した後、プロキシ・コンピュータ上にプロキシ・サーバ・コードをインストールすることになる。プロセス・ソフトウェアは、プロキシ・サーバへと伝送された後、プロキシ・サーバ上に格納されることになる。] [0026] 加えて、具体的に言えば、複数VIPAフェイルオーバ・コントローラのプロセス・ソフトウェアは、オペレーティング・システム、ネットワーク・スタック、または、アダプタなどのネットワーク・ハードウェアとは別に配置することが可能であることが理解されるが、プロセス・ソフトウェアは、クライアント・システムおよびサーバ・システム上のアプリケーション、オペレーティング・システム、またはネットワーク・サービス、あるいは、プロセス・ソフトウェアが機能することになるネットワーク環境内のアダプタまたは他のネットワーク・ハードウェアの機能に、全体または一部分が統合されるか、またはこれらと共存することも可能である。さらに、複数VIPAフェイルオーバ・コントローラのプロセス・ソフトウェアは、共用サーバ・システム上にオンデマンドで使用可能とすることができる。] [0027] 次に図3を参照すると、ブロック図は、本発明が内部に実装可能なコンピュータ・システムの一実施形態を示す。本発明のプロセス、方法、コンピュータ・プログラム製品、およびシステムは、ネットワーク202などのネットワークに通信的に接続された、コンピュータ・システム300などの多様なコンピューティング・システムを含む、多様なシステム内で実行可能である。コンピュータ・システム300は、1つまたは複数のアダプタを備えるホスト100を表すか、または複数ホスト内に分散させることができる。加えて、コンピュータ・システム300は、ホスト100を表すために、他のコンピュータ・システムとグループ化することができる。] 図3 [0028] コンピュータ・システム300は、コンピュータ・システム300内で情報を通信するためのバス322または他の通信デバイスと、情報処理のためにバス322に結合された、プロセッサ312などの少なくとも1つの処理デバイスとを含む。バス322は、ブリッジおよびアダプタによって接続され、複数のバス・コントローラによってコンピュータ・システム300内で制御される、低レイテンシ(latency)および高レイテンシのパスを含む。サーバとして実装される場合、コンピュータ・システム300は、ネットワーク・サービス能力を向上させるように設計された、複数のプロセッサを含むことができる。複数のプロセッサがバス322を共用する場合、バス・アクセスおよびロックを管理するための追加のコントローラ(図示せず)が実装可能である。] [0029] プロセッサ312は、通常の動作中に、ランダム・アクセス・メモリ(RAM)314などの動的ストレージ・デバイス、読み取り専用メモリ(ROM)316などの静的ストレージ・デバイス、大容量ストレージ・デバイス318などのデータ・ストレージ・デバイス、または他のデータ・ストレージ・メディアからアクセス可能な、オペレーティング・システム360、アプリケーション・ソフトウェア370、ミドルウェア(図示せず)、ネットワーク・ソフトウェア、および他のコードの制御の下で、データを処理する、IBMのPowerPC(TM)プロセッサなどの、汎用プロセッサとすることができる。オペレーティング・システム360、アプリケーション・ソフトウェア370、または他のソフトウェア・レイヤは、図2に示された複数VIPAフェイルオーバ・コントローラ232のコンポーネントのうちの1つまたは複数を実装することができる。] 図2 [0030] 一実施形態では、図8および図9の流れ図の動作ならびに本明細書で説明される他の動作で説明されるように、プロセッサ312によって実行される動作が、検索結果リンクの検出、現在の検索結果リンクとのユーザ対話に基づく検索結果リンクにおけるユーザの関心事の予測、および、現在のユーザの関心事に基づく検索結果リンクの動的再編成を、制御することができる。プロセッサ312によって実行される動作は、オペレーティング・システム360、アプリケーション・ソフトウェア370、ミドルウェアまたは他のコードによって要求可能であるか、あるいは本発明の諸ステップは、諸ステップを実行するためのハードワイヤード論理を含む特定のハードウェア・コンポーネントによって、または、プログラム済みコンピュータ・コンポーネントおよびカスタム・ハードウェア・コンポーネントの任意の組み合わせによって、実行可能である。] 図8 図9 [0031] 本発明は、コンピュータ・システム300上で実行された場合、本発明に従ったプロセスをコンピュータ・システム300に実行させる、コンピュータ読み取り可能プログラムの実行可能命令を格納した、コンピュータまたは機械読み取り可能メディア上に含まれる、コンピュータ・プログラム製品として提供可能である。本明細書で使用される「コンピュータ読み取り可能メディア」または「機械読み取り可能メディア」という用語は、プロセッサ312またはコンピュータ・システム300の他のコンポーネントへ、実行のための命令を提供することに関与しているいずれのメディアも含む。こうしたメディアは、不揮発性メディアおよび揮発性メディアなどのストレージ・タイプ・メディア、ならびに伝送メディアを含むが、これらに限定されない、多くの形を取ることができる。不揮発性メディアの一般的な形は、たとえば、フロッピー・ディスク(商標)、フレキシブル・ディスク、ハード・ディスク、磁気テープまたは任意の他の磁気メディア、コンパクト・ディスクROM(CD−ROM)または任意の他の光メディア、パンチ・カードまたはホール・パターンを伴う任意の他の物理メディア、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、フラッシュ・メモリ、任意の他のメモリ・チップまたはカートリッジ、あるいは、コンピュータ・システム300が読み取り可能であり命令の格納に好適な任意の他のメディアを含む。本実施形態では、不揮発性メディアの例は、コンピュータ・システム300の内部コンポーネントとして示されている大容量ストレージ・デバイス318であるが、外部デバイスによっても提供されるものと理解されよう。揮発性メディアは、RAM314などの動的メモリを含む。伝送メディアは、バス322を備えるワイヤを含む、同軸ケーブル、銅線、または光ファイバを含む。伝送メディアは、無線周波または赤外線のデータ通信中に生成されるような、音波または光波の形を取ることもできる。] [0032] さらに本発明は、コンピュータ・プログラム製品としてダウンロードまたは配布可能であり、ここでコンピュータ読み取り可能プログラム命令は、搬送波または他の伝搬メディア内に具体化されたデータ信号によって、バス322に結合された通信インターフェース332へのネットワーク・リンク334(たとえばモデムまたはネットワーク接続)へ、ネットワーク202を介して、サーバ340などのリモート・コンピュータから、要求側コンピュータ・システム300へと伝送可能である。一例では、プロセッサ312が複数のプロセッサ要素を含む場合、プロセッサ要素間に分散された処理タスクは、ローカルであるかネットワークを介するかに関わらず、コンピュータ・プログラム製品を表すことが可能であり、処理タスクは、プロセスを実行するためのJava(Javaはサンマイクロシステムズ社の登録商標である)オブジェクトまたは他の実行可能プログラムにアクセスするための、プロセスまたはプログラム命令を実行するためのプログラム命令を含む。通信インターフェース332は、たとえば、ローカル・エリア・ネットワーク(LAN)へ、ワイド・エリア・ネットワーク(WAN)へ、または直接インターネット・サービス・プロバイダ(ISP)へ接続可能な、ネットワーク・リンク334に結合している双方向データ通信を提供する。具体的に言えば、ネットワーク・リンク334は、ネットワーク202などの1つまたは複数のネットワークへ、有線あるいは無線またはその両方のネットワーク通信を提供することができる。さらに、図示されていないが、通信インターフェース332は、デバイス・ドライバなどのソフトウェア、アダプタなどのハードウェア、および通信が可能な他のコントローラを含むことができる。サーバとして実装された場合、コンピュータ・システム300は、たとえば入力/出力コントローラに接続された複数の周辺コンポーネント相互接続(PCI)バス・ブリッジを介してアクセス可能な、複数の通信インターフェースを含むことができる。このようにして、コンピュータ・システム300は、複数の別々のポートを介して複数のクライアントに接続することが可能であり、各ポートは、複数のクライアントへの複数の接続をサポートすることも可能である。] [0033] ネットワーク・リンク334およびネットワーク202は、どちらも、デジタル・データ・ストリームを搬送する、電気、電磁、または光の信号を使用する。コンピュータ・システム300との間でデジタルデータを搬送する、様々なネットワークを介する信号およびネットワーク・リンク334上で通信インターフェース332を介する信号は、情報を移送する搬送波の形を取ることができる。] [0034] 加えて、コンピュータ・システム300は、入力および出力を容易にする複数の周辺コンポーネントを含むことができる。これらの周辺コンポーネントは、複数レベルのバス322のうちの1つに結合された、入力/出力(I/O)インターフェース326などの、複数のコントローラ、アダプタ、および拡張スロットに接続される。入力デバイス324は、入力を制御するI/Oインターフェース326を介してバス322上で通信的に実行可能な、たとえばマイクロフォン、ビデオ・キャプチャ・デバイス、全身スキャン・システム、キーボード、マウス、または他の入力周辺デバイスを含むことができる。加えて、出力を制御するためにI/Oインターフェース326を介してバス322上で通信的に実行可能な出力デバイス320は、たとえば、1つまたは複数のグラフィカル・ディスプレイ・デバイス、オーディオ・スピーカ、および触知検出可能出力インターフェースを含むことができるが、他の出力インターフェースを含むこともできる。本発明の代替実施形態では、追加または代替の入力および出力周辺コンポーネントも追加可能である。] [0035] 当業者であれば、図3に示されたハードウェアが変更可能であることを理解されよう。さらに当業者であれば、示された例が、本発明に関してアーキテクチャ上の制限を示唆することを意味するものでないことを理解されよう。たとえば、コンピュータ・システム300は、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話デバイスとすることもできる。] 図3 [0036] 次に図4を参照すると、ブロック図は、複数のVIPAの同時サポートが実行可能な複数のアダプタに関する効率的なフェイルオーバをサポートするための、ネットワーク・スタックを示す。ネットワーク・スタック400のレイヤおよびコンポーネントは、複数のメモリ・コンポーネント間、複数のデバイス間、複数のインターフェース間、複数のコンピューティング・システム間、ならびに複数のネットワークおよびルータなどのネットワーク・デバイス間に分散可能であることに留意されたい。加えて、本発明を実装するネットワーク・スタックは、ネットワーク・スタック400に示されたものに追加または代替のレイヤ、プロセス、およびデータを含むことが可能であることに留意されたい。] 図4 [0037] この例では、ネットワーク・スタック400は、受信側ホストおよび要求側ホストの両方に関して説明される。一例では、ネットワーク・スタック400が受信側ホストを表す場合、ネットワーク・スタック400は1つまたは複数の要求側ホストからの要求を受信する。一例では、ネットワーク・スタック400が要求側ホストを表す場合、ネットワーク・スタック400は受信側ホストあるいは1つまたは複数の外部ホストに要求を送信する。] [0038] この例では、ネットワーク・スタック400はカーネル・レイヤ404を含む。カーネル・レイヤ404は、オペレーティング・システム360のインスタンスなどの1つまたは複数のタイプのオペレーティング・システムの1つまたは複数のインスタンス、複数のコンピュータ・プラットフォームの統合を可能にするWebSphere(WebSphereはインターナショナル・ビジネス・マシーンズ社の登録商標である)ミドルウェアなどのミドルウェアの1つまたは複数のインスタンスを含むことが可能であるが、これらに限定されない。] [0039] この例では、カーネル404は、ルーティング・テーブル406を維持することができる。ルーティング・テーブル406は、ハードウェア、IP、およびネットワークを介してアクセス可能な他のホストの他のレベルのアドレス指定を含むことが可能であり、1つまたは複数のゲートウェイに関するインターフェース・アドレス指定を含むことができる。一例では、カーネル404は、他のホストに対してアクセスされたアドレスのキャッシュを維持すること、および、キャッシュ内に維持するためのアドレスを決定する際の、ホストがアクセスされてからの時間などの、規則を適用することができる。] [0040] 加えて、この例では、ネットワーク・スタック400はTCP/IPレイヤ408を含む。複数VIPAフェイルオーバ・コントローラ232の一実装では、TCP/IPレイヤ408はVIPAリスト410を使用して実行可能である。VIPAリスト410は、ネットワーク・スタック400によってサポートされているIPアドレスおよびVIPAのシステム規模のリストを含む。着信ARPパケットなどの着信パケットに関して、IPアドレスがネットワーク・スタック400によってサポートされているかどうかを判別するために、着信パケット内で要求されたIPアドレスがVIPAリスト410に照らしてチェックされるように、複数VIPAフェイルオーバ・コントローラ232における設定値およびプロセスを通じて、アダプタ・レイヤ420が設定される。] [0041] VIPAリスト410に照らして着信パケットIPをチェックするようにネットワーク・スタック400を設定することにより、アダプタ・レイヤ420内のアダプタ414、416、および418の中のアダプタは、VIPAリスト410内の任意のVIPA向けのデータを受け入れることができる。具体的に言えば、VIPAリスト410はTCP/IPレイヤ408内に実装されているように示されているが、VIPAリスト410およびVIPAリスト410とパケットIPとの比較は、アダプタ・レイヤ420などの他のレイヤで実行可能であることに留意されたい。加えて、異なるレイヤまたは異なるレイヤ内の異なるコンポーネントが、VIPAリスト410の別々のインスタンスを維持できることに留意されたい。] [0042] この例では、ネットワーク・スタック400は受信側ホストであり、アダプタ・レイヤ420はVIPAリスト410内の任意のVIPAに関するARP要求を受信し、この要求が、ARP要求内のIPがVIPAリスト410内のVIPAのうちの1つである旨を決定するTCP/IPレイヤ408にプッシュアップ(push up)される。その後、TCP/IPレイヤ408は、ネットワーク上で要求側ホストにARP応答を送信するために、アダプタ・レイヤ420をトリガする。具体的に言えば、TCP/IPレイヤ408は、要求されたVIPAに関するARP応答を要求側ホストに送信するために、それぞれがそのアダプタに関するMACアドレスおよび要求されたVIPAを使用してARP応答を指定する、アダプタ414、416、および418のそれぞれをトリガする。] [0043] この例では、アダプタ・レイヤ420内の各アダプタにはMACハードウェア・アドレスが割り当てられる。たとえば、アダプタ414にはMAC1が割り当てられ、アダプタ416にはMAC2が割り当てられ、アダプタ418にはMAC3が割り当てられる。アダプタ414、416、および418には、複数のハードウェア・アドレス、ハードウェア・アドレスおよびネットワーク・アドレス、または他のタイプのアドレス指定を割り当てることも可能であることを理解されよう。加えて、アダプタ・レイヤ420は、アダプタ414、416、および418によって表されるアダプタに対して追加または代替のアダプタを含むことが可能であることを理解されよう。] [0044] この例では、VIPAリスト410がVIPA1およびVIPA2を含む場合、ネットワーク・スタック400がVIPA1に関するAPR要求を受信することに応答して、アダプタ414はVIPA1のARP応答、MAC1を送信し、アダプタ416はVIPA1のARP応答、MAC2を送信し、アダプタ418はVIPA1のARP応答、MAC3を送信することになる。加えて、この例では、ネットワーク・スタック400がVIPA2に関するARP要求を受信することに応答して、アダプタ414はVIPA2のARP応答、MAC1を送信し、アダプタ416はVIPA2のARP応答、MAC2を送信し、アダプタ418はVIPA2のARP応答、MAC3を送信することになる。] [0045] ネットワーク・スタック400が要求側ホストを表す場合、ネットワーク・スタック400は、それぞれが異なるMACアドレスを備える、VIPAに関する特定のARP要求に対する複数のARP応答を受信することができる。カーネル・レイヤ404などの、ネットワーク・スタック400のレイヤのうちの少なくとも1つは、ルーティング・テーブル406または他のキャッシュ内のARP応答のうちの1つを選択およびキャッシュし、他のARP応答を廃棄するための、ARP規則を適用する。加えて、代替実施形態では、ネットワーク・スタック400は、特定のARP要求に関するすべてのARP応答をキャッシュするが、パケットを送信するためにARP応答のうちの1つのみを選択し、ARP応答のうちの1つにおいて選択されたMACアドレスを介して、TCP/IPレイヤ412からVIPAアドレスへと結合することができる。] [0046] 受信側ホストを表すネットワーク・スタック400に戻ると、ネットワーク・スタック400内の1つまたは複数のレイヤで動作する複数VIPAフェイルオーバ・コントローラ232のフェイルオーバ・コントローラ412は、アダプタ障害を検出し、すべてのVIPAに関するARP更新をブロードキャストするために機能アダプタをトリガする。たとえば、フェイルオーバ・コントローラ412がアダプタ414の障害または除去を検出した場合、フェイルオーバ・コントローラ412は、VIPAリスト410内のそれぞれのVIPAに関するARP更新をブロードキャストするために、アダプタ416および418をトリガする。] [0047] この例では、VIPAリスト410がVIPA1およびVIPA2を含む場合、フェイルオーバ・コントローラ412がアダプタ414などのアダプタのフェイルオーバを検出することに応答して、アダプタ416は、VIPA1のARP更新、MAC2と、VIPA2のARP更新、MAC2とをブロードキャストし、アダプタ418は、VIPA1のARP更新、MAC3と、VIPA2のARP更新、MAC3とをブロードキャストする。] [0048] 一例では、フェイルオーバ・コントローラ412はカーネル・レイヤ404内に実装される。具体的に言えば、一例では、カーネル・レイヤ404は、デバイス・ドライバの監視および各アダプタの状況の維持などを通じて、アダプタ414、416、または418のうちのいずれかでの障害を検出することが可能である。カーネル・レイヤ404がフェイルオーバ・コントローラ412を通じて障害を検出できる場合、カーネル・レイヤ404は、1つまたは複数のアダプタ内の障害イベントにおいて、機能アダプタ上のVIPAリスト410内のすべてのVIPAに関するARP更新を送信するように、TCP/IPレイヤ408に指示する。] [0049] 他の例では、フェイルオーバ・コントローラ412は、アダプタ414、416、および418がスイッチを表し、カーネル・レイヤ404がスイッチ内の障害を検出できない場合などに、TCP/IPレイヤ408、アダプタ・レイヤ420、または他のレイヤ内で実装される。具体的に言えば、一例では、TCP/IPレイヤ408、アダプタ・レイヤ420、または他のレイヤが、カーネル・レイヤ404に渡されないアダプタ内の障害を検出できる場合、1つまたは複数のアダプタ内の障害イベントにおいて、機能アダプタ上のVIPAリスト410内のすべてのVIPAに関するARP更新を送信するように、TCP/IPレイヤ408またはアダプタ・レイヤ420をトリガするために、フェイルオーバ・コントローラ412は、TCP/IPレイヤ408、アダプタ・レイヤ420、または他のレイヤ内に実装可能である。] [0050] ARP更新がネットワークを介してブロードキャストされるため、結果として、MACアドレスを読み取るネットワーク上のすべての他のホストが、物理アドレスが変更されたことを示すARP更新を検出することになる。一例では、ARP更新は、ARP応答と同じヘッダまたは他の識別子を含むが、ARP更新は一般にネットワーク内でブロードキャストされる。他の例では、ARP更新は、アドレス指定が、以前に受信されたアドレス指定に対する更新であることを識別する、ARP応答とは異なるヘッダまたは他の識別子を含むことができる。] [0051] 要求側ホストを表すネットワーク・スタック400に戻ると、ネットワーク・スタック400がブロードキャストされたARP更新を受信した場合、カーネル・レイヤ404は、VIPAに関する1つのARP更新を選択するため、および同じVIPAに関するその他を廃棄するための、ARP規則に従って、それぞれのVIPAに関するARP更新でブロードキャストされた1つのMACアドレスを使用して、ルーティング・テーブル406を更新する。この例では、現在の接続が要求側ホストと受信側ホストとの間に確立されている場合、要求側ホストは、物理アドレスではなく受信側ホストのIPに結合する。要求側ホストのARP更新におけるすべてのVIPAに関して更新されたMACアドレスを受信することによって、要求側ホストが受信側ホストの更新されたVIPAのうちの1つに現在接続されている場合、受信側ホストは、現在の接続を中断することなく、VIPAに送信された任意の新しいパケットを、更新された機能MACアドレスのうちの1つにリダイレクトすることができる。] [0052] 次に図5を参照すると、流れ図は、複数のホストとゲートウェイ・ホストとの間で送信されるARPパケットの一例を示し、ここでゲートウェイ・ホストが複数のVIPAを同時に容易にできる複数のアダプタをサポートする。] 図5 [0053] この例では、ホスト502は要求側ホストとして動作し、VIPA1に関するARP要求を、受信側ホストとして動作するゲートウェイ506に送信する。ゲートウェイ506は、アダプタ1 508、アダプタ2 510、およびアダプタ3 512を備え、これらはすべて、VIPA1およびVIPA2として表される複数VIPAを同時にサポートすることができる。ゲートウェイ506は、ARP応答を送信することによってホスト1 502からのARP要求に応答するために、アダプタ1 508、アダプタ2 510、およびアダプタ3 512のそれぞれをトリガする。この例では、アダプタ1 508はVIPA1およびMAC1を備えたARP応答を送信し、ここでMAC1はアダプタ1 508に関するハードウェア・アドレスを表す。同様に、この例では、アダプタ2 510はVIPA1およびMAC2を備えたARP応答を送信し、ここでMAC2はアダプタ2 510に関するハードウェア・アドレスを表し、さらにアダプタ3 512はVIPA1およびMAC3を備えたARP応答を送信し、ここでMAC3はアダプタ3 512に関するハードウェア・アドレスを表す。] [0054] 図に示されるように、ホスト1 502は複数のARP応答を受信し、ARP規則または他の規則を適用することによって、アダプタ1 508に関するARP応答を選択する。ホスト1 502は、ゲートウェイ506のアダプタ1 508上でMAC1を介してVIPA1に結合する。] [0055] 加えて、この例では、ホスト2 514は要求側ホストとして動作し、VIPA2に関するARP要求を、受信側ホストとして動作するゲートウェイ506に送信する。ゲートウェイ506は、ARP応答を送信することによってホスト2 514からのARP要求に応答するために、アダプタ1 508、アダプタ2 510、およびアダプタ3 512のそれぞれをトリガする。この例では、アダプタ1 508はVIPA2およびMAC1を備えたARP応答を送信し、アダプタ2 510はVIPA2およびMAC2を備えたARP応答を送信し、アダプタ3 512はVIPA2およびMAC2を備えたARP応答を送信する。] [0056] 図に示されるように、ホスト2 514は複数のARP応答を受信し、ARP規則または他の規則を適用することによって、アダプタ3 512に関するARP応答を選択する。ホスト2 514は、ゲートウェイ506のアダプタ3 512上でMAC3を介してVIPA2に結合する。] [0057] 次にゲートウェイ506は、アダプタ1 508内の障害を検出する。ホスト1 502およびホスト2 514は、VIPA1またはVIPA2に関するパケットを送信するために、アダプタ1 508、アダプタ2 510、およびアダプタ3 512のいずれかを選択することが可能であり、ゲートウェイ506は、VIPA1またはVIPA2の両方に関するARP更新をブロードキャストするために、アダプタ2 510およびアダプタ3 512をトリガする。この例では、アダプタ2 510は、VIPA1、MAC2、およびVIPA2、MAC2に関するARP更新をブロードキャストし、これらは、ホスト1 502およびホスト2 514の両方によって検出される。加えて、アダプタ3 512は、VIPA1、MAC3、およびVIPA2、MAC3に関するARP更新をブロードキャストし、これらは、ホスト1 502およびホスト2 514の両方によって検出される。] [0058] ホスト1 502は、VIPA1、MAC2と、VIPA1、MAC3と、VIPA2、MAC2と、VIPA2、MAC3との、ARP更新を受信し、MAC2またはMAC3のいずれかへのVIPA1に関するキャッシュ済みMACアドレスを更新し、VIPA1への接続を中断することなく、任意の新しいパケットを更新されたキャッシュ済みMACアドレスに送信する。ホスト2 514も、VIPA1、MAC2と、VIPA1、MAC3と、VIPA2、MAC2と、VIPA2、MAC3との、ARP更新を受信し、VIPA2に関するキャッシュ済みMACアドレスを更新する。この例では、MAC3が依然としてVIPA2に対して使用可能であるため、ホスト2 514が、VIPA2に関するキャッシュ済みアドレスとしてMAC3を維持することが可能であるか、あるいはホスト2 514が、MAC2およびMAC3のうちの1つまたは複数をキャッシュするために任意に選択することができる。] [0059] 次に図6を参照すると、ブロック図は、内部に本発明が実装可能な、ゲートウェイを含むネットワーク環境の一例を示す。この例では、ネットワーク環境が、サブネットワーク600内のホストが互いにARPパケットを検出してこれに応答する、サブネットワーク600を含む。たとえば、ゲートウェイ604、ホスト606、ホスト608、ホスト612、およびホスト614は、ローカル・エリア・ネットワーク(LAN)610を介して互いに通信する。ゲートウェイ604は、インターネット602を介してサブネットワーク600外部の他のシステムとも通信することができる。加えて、ホスト608は、他のLAN616を介してホスト618などの他のシステムと通信可能な、ルータを表す。] 図6 [0060] この例では、サブネットワーク600内のホストのうちのいずれかが、サブネットワーク600内のすべての他のホストによって受信されたARP要求およびARP更新をLAN610上でブロードキャストすることができる。加えて、この例では、ゲートウェイ604およびホストのルータ608は、サブネットワーク600内のホストがサブネットワーク600外部のシステムにアクセスする際に通過するインターフェースを提供することができる。] [0061] ゲートウェイ604ならびにホスト606、608、612、614、および618のいずれか、ならびに、LAN610、LAN616およびインターネット602のいずれかは、1つまたは複数のアダプタを含むことが可能であり、ネットワーク・スタック400を実装することなどによって、アダプタが複数のVIPAを同時にサポートできるようにするネットワーク・スタックを実装することが可能である。たとえば、ゲートウェイ604は、図5でゲートウェイ506を参照しながら説明した複数アダプタなどの、複数のアダプタを含むことができる。] 図5 [0062] 次に図7を参照すると、流れ図は、複数のVIPAの同時サポートが実行可能な複数のアダプタをサポートし、停止ゲートウェイ検出をサポートする、ホスト・システムの例を示す。この例では、ホスト710は、ゲートウェイ702がダウンしているか否かを検出するために、停止ゲートウェイ検出(DGD)をサポートする。具体的に言えば、ホスト710は、ゲートウェイ702のインターフェースが機能しているかどうかの検出を制御するDGDコントローラ708を含むかまたはこれにアクセスすることができる。この例では、ホスト710はアダプタ1 712およびアダプタ2 714のうちの1つを介して、pingをゲートウェイ702に送信する。ゲートウェイ702は、ホストからのpingに応答して、ゲートウェイ702が機能していることを確認する。DGDコントローラ708がpingへの応答を検出しない場合、DGDコントローラ708はゲートウェイ停止を検出し、代替ゲートウェイの識別を試行するか、またはゲートウェイが機能していない旨の警告を提供することができる。] 図7 [0063] この例では、ホスト710は、アダプタ1 712およびアダプタ2 714が複数のVIPAを同時にサポートできるようにする。DGDコントローラ708と共に複数の同時VIPAサポートが可能となることにより、ホスト710は、アダプタ1 712およびアダプタ2 714のうちの1つが障害を起こしたことを検出し、機能アダプタのハードウェア・アドレスを使用してゲートウェイ702を更新するため、ゲートウェイ702は機能アダプタへのpingに応答することが可能であり、停止ゲートウェイを検出するためにDGDコントローラ708を誤ってトリガすることがない。] [0064] 具体的に言えば、この例では、スイッチ704および706を通過するホスト710からゲートウェイ702への複数のパスが存在する。DGDコントローラ708は、スイッチ704を含むパスを介してアダプタ1 712を通るか、またはスイッチ706を含むパスを介してアダプタ2 714を通るかの、いずれかによって、ゲートウェイ702へpingを送信することができる。ゲートウェイ702は、たとえば、あらゆる他のpingに応答する。アダプタ2 714が障害を起こした場合、ping応答がスイッチ704を介してアダプタ1 712へとルーティングされれば、DGDコントローラ708は、ゲートウェイ702を依然として機能しているものとして検出する可能性がある。しかしながら、アダプタ2 714が障害を起こした場合、ping応答がスイッチ706を介してアダプタ2 714へとルーティングされれば、DGDコントローラ708は、ゲートウェイ702を機能していないものとして検出する可能性もある。したがって、DGDコントローラ708がping応答を介してゲートウェイ702にアクセス可能であるかどうかを監視すると同時に、ホスト710は、アダプタ1 712およびアダプタ2 714のそれぞれが機能しているかどうかを検出し、アダプタ1 712およびアダプタ2 714のいずれかが障害を起こした場合、ゲートウェイ702にARP更新を送信する。この例では、アダプタ2 714が障害を起こした場合、アダプタ1 712は、アダプタ1 712上でサポートされているすべてのVIPAに関するARP更新をゲートウェイ702に送信することになる。ゲートウェイ702はARP更新を受信し、ping応答に関するアドレスを、アダプタ1 712のMACアドレスとなるように更新するため、結果としてDGDコントローラ708は、障害を起こしたアダプタがホスト710のアダプタである場合、偽の停止ゲートウェイを検出することがなく、また結果として、ホスト710内の複数VIPAフェイルオーバ・コントローラ232は、アダプタ・フェイルオーバの際にゲートウェイ702への「パス・フェイルオーバ」を容易にすることになる。] [0065] 一例では、ユーザは、複数VIPAフェイルオーバ・コントローラ232を実行可能にすることとは別に、DGDコントローラ708を実行可能にするように選択できる。他の例では、DGDコントローラ708は複数VIPAフェイルオーバ・コントローラ232内で実装可能であり、アダプタ障害の更新を受信可能である。] [0066] 次に図8を参照すると、高水準論理流れ図は、要求側ホストからの要求に応答する受信側ホストのネットワーク・スタックに関するプロセスおよびプログラムを示し、受信側ホストは複数のアダプタが複数のVIPAを同時にサポートできるようにする。この例では、プロセスはブロック800で開始された後、ブロック802へと進む。ブロック802は、IPアドレスに関連付けられたハードウェア・アドレスに関する要求を受信することを示す。次にブロック804は、要求されたIPアドレスに関して、受信側ホストによってサポートされる複数のVIPAのリストを調べることを示す。その後、ブロック806は、要求されたIPアドレスがVIPAリストに含まれているかどうかの決定を示す。要求されたIPアドレスがVIPAリストに含まれていない場合、プロセスは終了する。要求されたIPアドレスがVIPAリストに含まれている場合、プロセスはブロック808へと渡される。ブロック808は、各アダプタのアダプタ指定ハードウェア・アドレスと共に、要求されたIPアドレスに関する応答を要求側ホストに送信するために、各アダプタをトリガすることを示し、プロセスは終了する。要求はARP要求を通じて実装可能であり、応答は、ARP応答を通じて実装可能であり、指定されたハードウェア・アドレスはMACアドレスとすることができる。] 図8 [0067] 次に図9を参照すると、高水準論理流れ図は、要求側ホストが、複数のアダプタが複数のVIPAを同時にサポートできるようにした場合、フェイルオーバを容易にするために障害アダプタに応答する受信側ホストのネットワーク・スタックに関するプロセスおよびプログラムを示す。この例では、プロセスはブロック900で開始され、その後ブロック902へと進む。ブロック902は、ネットワーク・スタックが障害アダプタを検出したかどうかの決定を示す。前述のように、ネットワーク・スタックの異なるレイヤが障害アダプタを検出し、ネットワーク・スタックの他のレイヤに対して障害アダプタのインジケータを渡すか、またはフェイルオーバ・コントローラを直接トリガすることができる。ブロック902で、ネットワーク・スタックが障害アダプタを検出した場合、プロセスはブロック904へと渡される。ブロック904は、アダプタ指定ハードウェア・アドレスと共に、VIPAリスト内の各VIPAに関する更新をネットワーク上でブロードキャストするために、残りの各機能アダプタをトリガすることを示し、その結果、ネットワーク上の各ホストは、各アダプタに関する各VIPAの更新を受信し、プロセスは終了する。更新は、ARP更新を通じて実装可能であり、指定されるハードウェア・アドレスはMACアドレスとすることができる。] 図9 [0068] 以上、本発明について、好ましい実施形態を参照しながら具体的に図示および説明してきたが、当業者であれば、形および細部における様々な変更が、本発明の趣旨および範囲を逸脱することなく実行可能であることを理解されよう。]
权利要求:
請求項1 ネットワーク上での複数の仮想IPアドレスのホスト・サポートにおいてフェイルオーバを管理するためのコンピュータ実装方法であって、前記ホストの複数のアダプタのうちの任意のアダプタが、前記ホストに割り当てられた前記複数の仮想IPアドレスのうちの任意の仮想インターネット・プロトコル(IP)アドレスを同時にサポートできるようにするステップと、前記複数のアダプタの中の少なくとも1つの特定アダプタの障害に応答して、各仮想IPアドレスに関する別々のハードウェア・アドレス更新を、前記ネットワークを介して前記複数のアダプタの中の残りの各アダプタからブロードキャストするステップであって、結果として、前記複数の仮想IPアドレスをサポートする前記ホストにおけるフェイルオーバの場合、前記ホストが、前記ネットワークを介してアクセス可能な少なくとも1つの他のホストに、前記複数の仮想IPアドレスに関する任意の新しいパケットを、前記残りのアダプタのうちの1つの前記別々のハードウェア・アドレスのうちの1つへとアドレス指定するように指示する、ブロードキャストするステップと、を含む、コンピュータ実装方法。 請求項2 前記ホストの複数のアダプタのうちの任意のアダプタが、前記ホストに割り当てられた前記複数の仮想IPアドレスのうちの任意の仮想インターネット・プロトコル(IP)アドレスを同時にサポートできるようにするステップが、前記ホストで受信したARP要求内に指定されたIPアドレスと、前記複数の仮想IPアドレスのリストとを比較して、前記ホストが前記複数の仮想IPアドレスのリスト内の前記IPアドレスをサポートしているかどうかを判別するために、前記ホスト上にネットワーク・スタックを構成するステップをさらに含む、請求項1に記載の方法。 請求項3 前記ホストが、前記複数の仮想IPアドレスのうちの特定仮想IPアドレスに一致する特定のIPアドレスに関して、前記少なくとも1つの他のホストの中から要求側ホストからのARP要求を受信することに応答して、前記特定仮想IPアドレスに関する前記アダプタの各ハードウェア・アドレスと共に、前記要求側ホストにARP応答を送信するために前記複数のアダプタそれぞれをトリガするステップであって、前記要求側ホストが、前記複数のアダプタからの前記複数のARP応答のうちの1つを格納する、トリガするステップをさらに含む、請求項1または2に記載の方法。 請求項4 前記複数の更新を受信する前記少なくとも1つの他のホストに応答して、前記少なくとも1つの他のホストにより、前記複数の仮想IPアドレスのうちの1つに結合された接続を、前記残りのアダプタのうちの1つの前記別々のハードウェア・アドレスのうちの特定の1つにリダイレクトするステップを、さらに含む、前記請求項のいずれか一項に記載の方法。 請求項5 前記ネットワークを介した各仮想IPアドレスに関する前記別々のハードウェア・アドレス更新が、各仮想IPアドレスに関するMACアドレスを指定する別々のARP更新である、前記請求項のいずれか一項に記載の方法。 請求項6 前記ホストが、サブネットワークと少なくとも1つの他のネットワークとの間のゲートウェイである、前記請求項のいずれか一項に記載の方法。 請求項7 前記ゲートウェイがpingへの応答を戻す場合に、前記ゲートウェイが機能しているかどうかを判別するために、前記ホストによって、ゲートウェイを備える前記少なくとも1つの他のホストへpingを定期的に送信するステップをさらに含む、前記請求項のいずれか一項に記載の方法。 請求項8 ホストの複数のアダプタのうちの任意のアダプタが、前記ホストに割り当てられた複数の仮想IPアドレスのうちの任意の仮想インターネット・プロトコル(IP)アドレスを同時にサポートできるようにするための、ネットワーク・レイヤを備えるホストであって、前記ホストが、ネットワークを介して、少なくとも1つの他のホストへと通信的に接続され、前記ホストが、前記複数のアダプタの中の少なくとも1つの特定アダプタの障害に応答して、各仮想IPアドレスに関する別々のハードウェア・アドレス更新を、前記ネットワークを介して前記複数のアダプタの中の残りの各アダプタからブロードキャストするための、前記ネットワーク・レイヤをさらに備え、前記複数の仮想IPアドレスをサポートする前記ホストにおけるフェイルオーバの場合、前記ネットワーク・レイヤが、前記ネットワークを介してアクセス可能な前記少なくとも1つの他のホストに、前記複数の仮想IPアドレスに関する任意の新しいパケットを、前記残りのアダプタのうちの1つの前記別々のハードウェア・アドレスのうちの1つへとアドレス指定するように指示する、ホストを備える、フェイルオーバを管理するためのシステム。 請求項9 前記ホストの複数のアダプタのうちの任意のアダプタが、前記ホストに割り当てられた前記複数の仮想IPアドレスのうちの任意の仮想インターネット・プロトコル(IP)アドレスを同時にサポートできるようにするための前記ネットワーク・レイヤが、前記ホストで受信したARP要求内に指定されたIPアドレスと、前記複数の仮想IPアドレスのリストとを比較して、前記ホストが前記複数の仮想IPアドレスのリスト内の前記IPアドレスをサポートしているかどうかを判別するために、前記ホスト上にネットワーク・スタックを構成するための、移送レイヤをさらに備える、請求項8に記載のシステム。 請求項10 前記ホストが、前記複数の仮想IPアドレスのうちの特定仮想IPアドレスに一致する特定のIPアドレスに関して、前記少なくとも1つの他のホストの中から要求側ホストからのARP要求を受信することに応答して、前記特定仮想IPアドレスに関する前記アダプタの各ハードウェア・アドレスと共に、前記要求側ホストにARP応答を送信するために前記複数のアダプタそれぞれをトリガするための、前記ネットワーク・レイヤをさらに備え、前記要求側ホストが、前記複数のアダプタからの前記複数のARP応答のうちの1つを格納する、請求項8または9に記載のシステム。 請求項11 前記複数の更新を受信する前記少なくとも1つの他のホストに応答して、前記複数の仮想IPアドレスのうちの1つに結合された接続を、前記残りのアダプタのうちの1つの前記別々のハードウェア・アドレスのうちの特定の1つにリダイレクトするための、前記少なくとも1つの他のホストをさらに備える、請求項8から10のいずれか一項に記載のシステム。 請求項12 前記ネットワークを介した各仮想IPアドレスに関する前記別々のハードウェア・アドレス更新が、各仮想IPアドレスに関するMACアドレスを指定する別々のARP更新である、請求項8から11のいずれか一項に記載のシステム。 請求項13 前記ホストが、サブネットワークと少なくとも1つの他のネットワークとの間のゲートウェイである、請求項8から12のいずれか一項に記載のシステム。 請求項14 前記ゲートウェイがpingへの応答を戻す場合に、前記ゲートウェイが機能しているかどうかを判別するために、ゲートウェイを備える前記少なくとも1つの他のホストへpingを定期的に送信するためのホストをさらに備える、請求項8から13のいずれか一項に記載のシステム。 請求項15 ネットワーク上での複数の仮想IPアドレスのホスト・サポートにおいてフェイルオーバを管理するためのコンピュータ読み取り可能プログラムを含むストレージ・タイプのコンピュータ使用可能メディアを備えるプログラムであって、前記コンピュータ読み取り可能プログラムがコンピュータ上で実行された場合、前記ホストの複数のアダプタのうちの任意のアダプタが、前記ホストに割り当てられた前記複数の仮想IPアドレスのうちの任意の仮想インターネット・プロトコル(IP)アドレスを同時にサポートできるようにすること、および前記複数のアダプタの中の少なくとも1つの特定アダプタの障害に応答して、各仮想IPアドレスに関する別々のハードウェア・アドレス更新を、前記ネットワークを介して前記複数のアダプタの中の残りの各アダプタからブロードキャストすることを、前記コンピュータに実行させる、プログラム。 請求項16 前記コンピュータ読み取り可能プログラムがネットワークを介して伝送される、請求項15に記載のプログラム。 請求項17 さらに前記コンピュータ読み取り可能プログラムが前記コンピュータ上で実行された場合、前記ホストで受信したARP要求内に指定されたIPアドレスと、前記複数の仮想IPアドレスのリストとを比較して、前記ホストが前記複数の仮想IPアドレスのリスト内の前記IPアドレスをサポートしているかどうかを判別するために、前記ホスト上にネットワーク・スタックを構成することを、前記コンピュータに実行させる、請求項15または16に記載のプログラム。 請求項18 さらに前記コンピュータ読み取り可能プログラムが前記コンピュータ上で実行された場合、前記ホストが、前記複数の仮想IPアドレスのうちの特定仮想IPアドレスに一致する特定のIPアドレスに関して、前記少なくとも1つの他のホストの中から要求側ホストからのARP要求を受信することに応答して、前記特定仮想IPアドレスに関する前記アダプタの各ハードウェア・アドレスと共に、前記要求側ホストにARP応答を送信するために前記複数のアダプタそれぞれをトリガすることを、前記コンピュータに実行させ、前記要求側ホストが、前記複数のアダプタからの前記複数のARP応答のうちの1つを格納する、請求項15から17のいずれか一項に記載のプログラム。 請求項19 さらに前記コンピュータ読み取り可能プログラムが前記コンピュータ上で実行された場合、前記複数の更新を受信する前記少なくとも1つの他のホストに応答して、前記少なくとも1つの他のホストにより、前記複数の仮想IPアドレスのうちの1つに結合された接続を、前記残りのアダプタのうちの1つの前記別々のハードウェア・アドレスのうちの特定の1つにリダイレクトすることを、前記コンピュータに実行させる、請求項15から18のいずれか一項に記載のプログラム。 請求項20 さらに前記コンピュータ読み取り可能プログラムが前記コンピュータ上で実行された場合、前記ネットワークを介した各仮想IPアドレスに関する前記別々のハードウェア・アドレス更新を、各仮想IPアドレスに関するMACアドレスを指定する別々のARP更新を通じて更新することを、前記コンピュータに実行させる、請求項15から19のいずれか一項に記載のプログラム。
类似技术:
公开号 | 公开日 | 专利标题 US10645056B2|2020-05-05|Source-dependent address resolution US20180359177A1|2018-12-13|Health checking in a distributed load balancer US9847967B2|2017-12-19|DHCP proxy in a subscriber environment US20190342212A1|2019-11-07|Managing communications using alternative packet addressing US9491002B1|2016-11-08|Managing communications involving external nodes of provided computer networks US10652202B2|2020-05-12|Network address translating router for mobile networking JP6445621B2|2018-12-26|分散型ロードバランサ US20170295060A1|2017-10-12|Providing extendible network capabilities for managed computer networks US9432245B1|2016-08-30|Distributed load balancer node architecture JP6492132B2|2019-03-27|コンピューティングノード間の通信の構成 US20200259707A1|2020-08-13|Providing logical networking functionality for managed computer networks JP6445015B2|2018-12-26|ミドルウェアおよびアプリケーションの実行のためにエンジニアド・システムにおいてデータサービスを提供するためのシステムおよび方法 KR101572771B1|2015-11-27|가상 스위치를 통한 네트워크 트래픽 제어 시스템 및 방법 US9282055B2|2016-03-08|System and method for initializing and maintaining a series of virtual local area networks contained in a clustered computer system EP2853077B1|2020-03-25|Method of seamless integration and independent evolution of information-centric networking via software defined networking Nordström et al.2012|Serval: An end-host stack for service-centric networking US8937960B2|2015-01-20|Managing communications for modified computer networks US8125993B2|2012-02-28|Network element having a DHCP lease timer US10135687B2|2018-11-20|Virtual group policy based filtering within an overlay network KR101840904B1|2018-03-21|가상화된 네트워크와 비-가상화된 네트워크 간 가상화 게이트웨이 JP4000331B2|2007-10-31|ネットワークのポートマッピング用システム DE60103088T2|2004-09-09|Verfahren zur Herstellung von Weiterleitungslisten für Netzwerkgruppe US8396946B1|2013-03-12|Managing integration of external nodes into provided computer networks US5774660A|1998-06-30|World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network US6999998B2|2006-02-14|Shared memory coupling of network infrastructure devices
同族专利:
公开号 | 公开日 JP4897927B2|2012-03-14| CA2699314A1|2009-06-25| DE602008005937D1|2011-05-12| KR20100097694A|2010-09-03| US20090158082A1|2009-06-18| TWI448131B|2014-08-01| AT504153T|2011-04-15| CN101884208B|2013-06-12| KR101442309B1|2014-09-23| CA2699314C|2016-03-29| WO2009077292A1|2009-06-25| EP2232828B1|2011-03-30| CN101884208A|2010-11-10| TW200943877A|2009-10-16| EP2232828A1|2010-09-29| US7913106B2|2011-03-22|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 US6657974B1|2000-04-14|2003-12-02|International Business Machines Corporation|Method and apparatus for generating replies to address resolution protocol requests| US20030018927A1|2001-07-23|2003-01-23|Gadir Omar M.A.|High-availability cluster virtual server system| US7020796B1|2001-07-27|2006-03-28|Ciena Corporation|High availability communication system| JP2006333077A|2005-05-26|2006-12-07|Nippon Telegr & Teleph Corp <Ntt>|回線冗長化方法およびこれに用いる中継装置|JP5757324B2|2011-03-31|2015-07-29|日本電気株式会社|コンピュータシステム、及び通信方法|US6108300A|1997-05-02|2000-08-22|Cisco Technology, Inc|Method and apparatus for transparently providing a failover network device| US7039008B1|1997-05-02|2006-05-02|Cisco Technology, Inc.|Method and apparatus for maintaining connection state between a connection manager and a failover device| US5978938A|1996-11-19|1999-11-02|International Business Machines Corporation|Fault isolation feature for an I/O or system bus| US5917997A|1996-12-06|1999-06-29|International Business Machines Corporation|Host identity takeover using virtual internet protocol addressing| US7055173B1|1997-12-19|2006-05-30|Avaya Technology Corp.|Firewall pooling in a network flowswitch| US6078957A|1998-11-20|2000-06-20|Network Alchemy, Inc.|Method and apparatus for a TCP/IP load balancing and failover process in an internet protocol network clustering system| US6430622B1|1999-09-22|2002-08-06|International Business Machines Corporation|Methods, systems and computer program products for automated movement of IP addresses within a cluster| US6675206B1|2000-04-14|2004-01-06|International Business Machines Corporation|Method and apparatus for generating replies to address resolution protocol requests for virtual IP addresses| US6718383B1|2000-06-02|2004-04-06|Sun Microsystems, Inc.|High availability networking with virtual IP address failover| US6996617B1|2000-08-17|2006-02-07|International Business Machines Corporation|Methods, systems and computer program products for non-disruptively transferring a virtual internet protocol address between communication protocol stacks| US6941384B1|2000-08-17|2005-09-06|International Business Machines Corporation|Methods, systems and computer program products for failure recovery for routed virtual internet protocol addresses| US7146432B2|2001-01-17|2006-12-05|International Business Machines Corporation|Methods, systems and computer program products for providing failure recovery of network secure communications in a cluster computing environment| US7107350B2|2001-01-17|2006-09-12|International Business Machines Corporation|Methods, systems and computer program products for security processing outbound communications in a cluster computing environment| US7426566B2|2001-01-17|2008-09-16|International Business Machines Corporation|Methods, systems and computer program products for security processing inbound communications in a cluster computing environment| US7061942B2|2002-05-31|2006-06-13|Skystream Networks Inc.|Apparatus for redundant multiplexing and remultiplexing of program streams and best effort data| JP3932994B2|2002-06-25|2007-06-20|株式会社日立製作所|サーバ引継システムおよびその方法| US7152179B1|2002-09-19|2006-12-19|Cisco Technology, Inc.|IP redundancy with improved failover notification| US7835265B2|2002-10-31|2010-11-16|Conexant Systems, Inc.|High availability Ethernet backplane architecture| JP2004220216A|2003-01-14|2004-08-05|Hitachi Ltd|San/nas統合型ストレージ装置| US7814232B2|2003-03-28|2010-10-12|Cisco Technology, Inc.|Network address translation with gateway load distribution| US20050010837A1|2003-07-10|2005-01-13|International Business Machines Corporation|Method and apparatus for managing adapters in a data processing system| US20050125557A1|2003-12-08|2005-06-09|Dell Products L.P.|Transaction transfer during a failover of a cluster controller| US7760626B2|2004-03-31|2010-07-20|Intel Corporation|Load balancing and failover| US7506214B2|2004-04-22|2009-03-17|International Business Machines Corporation|Application for diagnosing and reporting status of an adapter| US7275175B2|2004-07-22|2007-09-25|International Business Machines Corporation|Method and apparatus for high-speed network adapter failover| US7505401B2|2005-01-31|2009-03-17|International Business Machines Corporation|Method, apparatus and program storage device for providing mutual failover and load-balancing between interfaces in a network| US8195736B2|2006-08-08|2012-06-05|Opnet Technologies, Inc.|Mapping virtual internet protocol addresses| US7743155B2|2007-04-20|2010-06-22|Array Networks, Inc.|Active-active operation for a cluster of SSL virtual private network devices with load distribution| US20080285436A1|2007-05-15|2008-11-20|Tekelec|Methods, systems, and computer program products for providing site redundancy in a geo-diverse communications network| US9009327B2|2007-08-03|2015-04-14|Citrix Systems, Inc.|Systems and methods for providing IIP address stickiness in an SSL VPN session failover environment| US8132247B2|2007-08-03|2012-03-06|Citrix Systems, Inc.|Systems and methods for authorizing a client in an SSL VPN session failover environment| US8020203B2|2007-12-03|2011-09-13|Novell, Inc.|Techniques for high availability of virtual private networks | US20100097925A1|2008-10-16|2010-04-22|International Business Machines Corporation|Selective routing traffic controls and automated recovery among parallel multi-access interfaces|JP5074290B2|2008-05-13|2012-11-14|株式会社日立国際電気|冗長切替システム、冗長管理装置およびアプリケーション処理装置| JP5498102B2|2009-09-02|2014-05-21|アラクサラネットワークス株式会社|ネットワークシステム、ネットワーク中継装置、それらの制御方法| DE102010052394B4|2010-11-24|2019-01-03|Kuka Roboter Gmbh|Robotersystem mit einem Roboter und zwei wechselweise mit diesem verbindbaren Einrichtungen sowie Verfahren zum Wechseln dieser Einrichtungen| US9300491B2|2011-02-11|2016-03-29|Qualcomm Incorporated|Frame delivery path selection in hybrid communication networks| US9025603B2|2011-03-08|2015-05-05|Qualcomm Incorporated|Addressing scheme for hybrid communication networks| US20120311183A1|2011-06-01|2012-12-06|Kutch Patrick G|Circuitry to maintain correlation between sets of addresses| US9154367B1|2011-12-27|2015-10-06|Google Inc.|Load balancing and content preservation| US20130194912A1|2012-01-27|2013-08-01|International Business Machines Corporation|Sea failover mechanism with minimized packet losses| US9286171B2|2013-12-12|2016-03-15|International Business Machines Corporation|Priming failover of stateful offload adapters| TWI597953B|2015-11-25|2017-09-01|財團法人工業技術研究院|具故障轉移能力的快速周邊元件互連網路系統與操作方法| CN105376095A|2015-11-26|2016-03-02|曙光信息产业股份有限公司|一种访问ip均衡方法及装置| US10719305B2|2016-02-12|2020-07-21|Nutanix, Inc.|Virtualized file server tiers| US10824455B2|2016-12-02|2020-11-03|Nutanix, Inc.|Virtualized server systems and methods including load balancing for virtualized file servers| US10728090B2|2016-12-02|2020-07-28|Nutanix, Inc.|Configuring network segmentation for a virtualization environment|
法律状态:
2011-07-08| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110707 | 2011-07-08| A871| Explanation of circumstances concerning accelerated examination|Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20110707 | 2011-08-03| A975| Report on accelerated examination|Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20110802 | 2011-08-10| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110809 | 2011-11-03| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111102 | 2011-11-21| TRDD| Decision of grant or rejection written| 2011-11-30| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111129 | 2011-12-01| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 | 2012-01-05| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111222 | 2012-01-06| R150| Certificate of patent or registration of utility model|Ref document number: 4897927 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 | 2012-01-12| FPAY| Renewal fee payment (event date is renewal date of database)|Free format text: PAYMENT UNTIL: 20150106 Year of fee payment: 3 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|